package main

import (
	"fmt"
	"github.com/garyburd/redigo/redis"
)

var pool *redis.Pool

func init() {
	pool = &redis.Pool{
		Dial: func() (conn redis.Conn, e error) {
			return redis.Dial("tcp", "127.0.0.1:6379")
		},
		TestOnBorrow:    nil,
		MaxIdle:         8,   //最大空闲
		MaxActive:       0,   //最大链接数，0表示没限制
		IdleTimeout:     100, // 最大空闲时间
		Wait:            false,
		MaxConnLifetime: 0,
	}
}

/**
  如果我们要从pool取出链接，一定要保证连接池是没有关闭
  pool.Close() 不用操作
*/
func main() {

	//从pool 获取一个链接
	conn := pool.Get()
	defer conn.Close()

	//通过go 向redis写入数据 string[key-val]
	reply, err := conn.Do("set", "name", "xiao LiLi")
	if err != nil {
		fmt.Printf("conn.Do err : %v \n", err)
	}
	fmt.Printf("set result : %v \n", reply)

	reply, err = redis.String(conn.Do("get", "name"))
	if err != nil {
		fmt.Printf("conn.Do err : %v \n", err)
	}
	fmt.Printf("set result : %v \n", reply)

}
